/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package mx.itschapala.dsw2.biblioteca8a.bl;

import java.util.List;
import javax.ejb.EJB;
import javax.ejb.Stateless;
import mx.itschapala.dsw2.biblioteca8a.dao.LibroDaoLocal;
import mx.itschapala.dsw2.biblioteca8a.enumeracion.EstadoDetallePrestamo;
import mx.itschapala.dsw2.biblioteca8a.enumeracion.EstadoServicio;
import mx.itschapala.dsw2.biblioteca8a.modelo.Libro;

/**
 *
 * @author Maricela
 */
@Stateless
public class Librobl implements LibroblLocal {
    @EJB
    private LibroDaoLocal libroDao;

    @Override
    public EstadoServicio register(Libro book) {
     if (libroDao.findByClave(book) == null){
         libroDao.create(book);
            return EstadoServicio.COMPLETE;

        }else {
            return EstadoServicio.INCOMPLETE;
        }
    }

    @Override
    public EstadoServicio modify(Libro book) {
        if (book.getId() == null || libroDao.find(book.getId()) == null){
            return EstadoServicio.INCOMPLETE;
        }else {
          libroDao.edit(book);
            return EstadoServicio.COMPLETE;
        }
    }

    @Override
    public EstadoServicio delete(Libro book) {
         if (book.getId() == null || libroDao.find(book.getId()) == null){
            return EstadoServicio.INCOMPLETE;
        }else {
          libroDao.remove(book);
            return EstadoServicio.COMPLETE;
        }
    }

    @Override
    public Libro findById(Integer id) {
        return libroDao.find(id);
    }
    public List<Libro> getAll() {
        return libroDao.findAll();
    }

    @Override
    public Libro findByClaveFromLend(String clave) {
        Libro lbusqueda= new Libro ();
        lbusqueda.setClave(clave);
        Libro l = libroDao.findByClave(lbusqueda);
        System.out.println("esta es el <<<<<<<<<<<<<<<" + l);
        if (l != null && l.getEstado().equals(EstadoDetallePrestamo.RETURN.name())){
        return l;
        }
        return null;
    }
    
    

   

}
